import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/8 9:51
 * @description 虽然给好的数组已经排好序，但是可以在根据题目要求进行排序，然后取前k个数即可，不要舍近求远
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int[] arr = {1, 2, 3, 4, 5};
        solution.findClosestElements(arr, 4, 3);
    }
    public List<Integer> findClosestElements(int[] arr, int k, int x) {
        List<Integer> ans = new ArrayList<>();
        for (int i : arr) {
            ans.add(i);
        }
        Collections.sort(ans, (a, b) -> {
            if (Objects.equals(a, b)) {
                return a - b;
            }
            return Math.abs(a - x) - Math.abs(b - x);
        });
        ans = ans.subList(0, k);
        Collections.sort(ans);
        return ans;
    }
}
